home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / hexer / mpth_17.exe / {app} / scripts / Structure Viewer / fat32.mps < prev    next >
Text File  |  2006-03-19  |  5KB  |  181 lines

  1. option title, "FAT32 Boot structure"
  2. =
  3. =
  4. =    Tiny Hexer script for FAT32 structure view in
  5. =    mirkes.de's tiny hex editor
  6. =
  7. =    Adaptation of FAT16 (and built-in BMP) structure viewer
  8. =
  9. =    02-07-05 Bill Blankenship
  10. =
  11.  
  12.  
  13. option GlobalVars, 1
  14. option ReadTags, 1
  15. option target, structureviewer
  16.  
  17. = open active editor and goto current position/0
  18. var editor file
  19. editor = fileopen('::current')
  20. if ((param_count > 0) and (dword(params(0))==1))
  21.   fileseek editor, 0
  22. else
  23.   fileseek editor, filegetprop(editor, 'selstart')
  24. endif
  25. var start dword
  26. start = filegetprop(editor, 'position')
  27.  
  28. = open browser window
  29. var browser file
  30. browser = fileopen('::browser', 'c')
  31.  
  32. filesetprop browser, 'accepttags', 1
  33. filewrite browser "<font color=",'"',"blue",'"',"><b><u>FAT32 Boot structure:</u></b></font>\n\n"
  34. filesetprop browser, 'accepttags', 0
  35.  
  36. filewrite browser "Position: ",start,"\n\n"
  37.  
  38. = read the JMP instruction
  39. var JMP1 byte JMP2 byte NOP byte
  40. fileread editor JMP1  
  41. fileread editor JMP2
  42. fileread editor NOP
  43.  
  44. = print JMP Instruction
  45. filewrite browser "JMP instruction: \t\t'",JMP1," ",JMP2," ",NOP,"'\n"
  46.  
  47. var OEM text
  48. fileread editor OEM 8
  49. filewrite browser "OEM:  \t\t\t\t'",OEM,"'\n"
  50.  
  51. = Do BIOS Parameter block
  52. var bytespersect word sectpercluster byte reservedsect word numfats byte
  53. var rootentries word totalsectors word mediatype byte sectperfat word
  54. var sectpertrack word numheads word hiddensect dword 
  55. var bigtotalsect dword bigsectperfat dword
  56. var extflags word fsver word rootdirstartclus dword
  57. var fsinfosec word backbootsect word 
  58. var res1 qword res2 dword biosdrive byte unused byte
  59. var signature byte volsn dword volumelabel text sysid text
  60.  
  61. fileread editor bytespersect
  62. filewrite browser "Bytes per Sector: \t\t'",bytespersect,"' ("
  63. call TO_DEC @bytespersect
  64. filewrite browser " dec)\n"
  65.  
  66. fileread editor sectpercluster
  67. filewrite browser "Sectors per cluster: \t\t'",sectpercluster,"' ("
  68. call TO_DEC @sectpercluster
  69. filewrite browser " dec)\n"
  70.  
  71. fileread editor reservedsect
  72. filewrite browser "Reserved Sectors: \t\t'",reservedsect,"' ("
  73. call TO_DEC @reservedsect
  74. filewrite browser " dec)\n"
  75.  
  76. fileread editor numfats
  77. filewrite browser "Number of FATs: \t\t'",numfats,"'\n"
  78.  
  79. fileread editor rootentries
  80. filewrite browser "Max root entries: \t\t'",rootentries,"' ("
  81. call TO_DEC @rootentries
  82. filewrite browser " dec)\n"
  83.  
  84. fileread editor totalsectors
  85. filewrite browser "Total sectors (small volume): \t'",totalsectors,"' ("
  86. call TO_DEC @totalsectors
  87. filewrite browser " dec)\n"
  88.  
  89. fileread editor mediatype
  90. filewrite browser "Media type: \t\t\t'",mediatype,"'\n"
  91.  
  92. fileread editor sectperfat
  93. filewrite browser "Sectors per FAT (small volume): '",sectperfat,"' ("
  94. call TO_DEC @sectperfat
  95. filewrite browser " dec)\n"
  96.  
  97. fileread editor sectpertrack
  98. filewrite browser "Sectors per track: \t\t'",sectpertrack,"' ("
  99. call TO_DEC @sectpertrack
  100. filewrite browser " dec)\n"
  101.  
  102. fileread editor numheads
  103. filewrite browser "Number of heads: \t\t'",numheads,"' ("
  104. call TO_DEC @numheads
  105. filewrite browser " dec)\n"
  106.  
  107. fileread editor hiddensect
  108. filewrite browser "Hidden sectors: \t\t'",hiddensect,"' ("
  109. call TO_DEC @hiddensect
  110. filewrite browser " dec)\n"
  111.  
  112. fileread editor bigtotalsect
  113. filewrite browser "Large sectors: \t\t'",bigtotalsect,"' ("
  114. call TO_DEC @bigtotalsect
  115. filewrite browser " dec)\n"
  116.  
  117. fileread editor bigsectperfat
  118. filewrite browser "Sectors per FAT: \t\t'",bigsectperfat,"' ("
  119. call TO_DEC @bigsectperfat
  120. filewrite browser " dec)\n"
  121.  
  122. fileread editor extflags
  123. filewrite browser "Flags: \t\t\t'",extflags,"'\n"
  124. fileread editor fsver
  125. filewrite browser "Filesystem version: \t\t'",fsver,"' ("
  126. call TO_DEC @fsver
  127. filewrite browser " dec)\n"
  128.  
  129. fileread editor rootdirstartclus
  130. filewrite browser "Root dir 1st cluster: \t\t'",rootdirstartclus,"' ("
  131. call TO_DEC @rootdirstartclus
  132. filewrite browser " dec)\n"
  133.  
  134. fileread editor fsinfosec
  135. filewrite browser "FSInfo sector: \t\t'",fsinfosec,"' ("
  136. call TO_DEC @fsinfosec
  137. filewrite browser " dec)\n"
  138.  
  139. fileread editor backbootsect
  140. filewrite browser "Backup boot sector: \t\t'",backbootsect,"' ("
  141. call TO_DEC @backbootsect
  142. filewrite browser " dec)\n"
  143.  
  144. fileread editor res1
  145. fileread editor res2
  146. =filewrite browser "Reserved: \t\t\t'",res1
  147. =NUMBER_PREFIX=''
  148. =filewrite browser res2,"'\n"
  149. =NUMBER_PREFIX='0x'
  150.  
  151. fileread editor biosdrive
  152. filewrite browser "Drive number: \t\t\t'",biosdrive,"'\n"
  153. fileread editor unused
  154.  
  155. fileread editor signature
  156. filewrite browser "NT Signature: \t\t\t'",signature,"'\n"
  157.  
  158. fileread editor volsn
  159. filewrite browser "Volume serial number: \t\t'",volsn,"' ("
  160. call TO_DEC @volsn
  161. filewrite browser " dec)\n"
  162.  
  163. fileread editor volumelabel 11
  164. filewrite browser "Volume label: \t\t\t'",volumelabel,"'\n"
  165. fileread editor sysid 8
  166. filewrite browser "System ID: \t\t\t'",sysid,"'\n"
  167. end
  168.  
  169. = decimal output - taken from BMP viewer
  170. @@TO_DEC
  171. number_radix = 10
  172. number_prefix = ''
  173. var _r1 varref
  174. pop _r1
  175. filewrite browser deref(_r1)
  176. number_prefix = '0x'
  177. number_radix = 16
  178. return
  179.  
  180.  
  181.